// import { ElMessageBox } from "element-plus";
import { ElMessage, ElMessageBox } from "element-plus";
import ApiCode from "@/constants/ApiCode.js";
const MsgUtil = {

    /**
     * 成功和失败都是 Message
     * @param {Object} apiRes 调用api接口返回的结果 
     * @param {Object} options 成功的回调
     */
    handleApiRes(apiRes, options = {}) {
        options.message = apiRes.msg;
        if (apiRes.code != ApiCode.OK) {
            options.type = 'warning'

        } else {
            options.type = 'success'
            if('function' === typeof options.onApiSuccess){
                options.onApiSuccess()
            }
        }
        return ElMessage(options);
    },

    /**
     * 如果请求结果不是预期的，则弹窗提醒,成功则无弹窗
     */
    alertIfError(apiRes) {

        return new Promise((resolve, rej) => {
            if (apiRes.code != ApiCode.OK) {
                ElMessageBox.alert( apiRes.msg, '提示', {
                    type: 'error',
                    callback() {
                        rej(apiRes);
                    }
                })
            } else {
                resolve(apiRes);
            }
        })

    },

    /**
     * 提示成功信息，alert错误信息
     * @param {*} apiRes 
     */
    showSuccessAndAlertError(apiRes){
        return new Promise((resolve, rej) => {
            if (apiRes.code != ApiCode.OK) {
                ElMessageBox.alert( apiRes.msg, '提示', {
                    type: 'error',
                    callback() {
                        rej(apiRes);
                    }
                })
            } else {
                ElMessage({
                    message : apiRes.msg,
                    type : 'success'
                });
                resolve(apiRes);
            }
        })
    },

    dangerAction(options={}){
        return ElMessageBox({
            title : '谨慎操作！',
            message : options?.message || '请谨慎进行该操作',
            type:'warning',
            showCancelButton : true

        })
    },

    warnMsg(options){
        if(!options.title){
            options.title = '提醒'
        }
        if(!options.type){
            options.type = 'warning'
        }
        ElMessage(options)
    }
}
export default MsgUtil